package com.dragon.modules.yuegou.model.merchant;

import com.dragon.modules.yuegou.entity.merchant.MerchantEntity;
import com.dragon.modules.yuegou.enums.merchant.MerchantMerType;
import com.dragon.modules.yuegou.enums.merchant.MerchantMerchantType;
import com.dragon.modules.yuegou.enums.merchant.MerchantStatus;
import io.swagger.annotations.ApiModelProperty;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;

/**
 * 商户信息模型类
 * 
 * @author pbuilder generated
 * @date 2019-07-30 09:57:34
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class Merchant extends MerchantEntity {

	/** 银行卡号 */
	@ApiModelProperty("银行卡号")
	protected String encBankNo;

	/** 银行开户用户名 */
	@ApiModelProperty("银行开户用户名")
	protected String encTrueName;

	/** 开户行code */
	@ApiModelProperty("开户行code")
	protected String bankCode;

	/** 银行名称 */
	@ApiModelProperty("银行名称")
	protected String bankName;

	@ApiModelProperty("一级业态名称")
	private String bName;

	@ApiModelProperty("二级业态名称")
	private String bSecondName;

	@ApiModelProperty("二级业态名称")
	private String btypeName;

	@ApiModelProperty("商户用户名")
	private String username;

	@ApiModelProperty("商户密码")
	private String password;

	@ApiModelProperty("商户确认密码")
	private String confirmPassword;

	@ApiModelProperty("商户收款码地址")
	private String qrcodeUrl;

	@ApiModelProperty("是否开启收款到账语音,语音播报配置：0-关闭；1-开启")
	private boolean voiceCof;

	@ApiModelProperty("商品数量")
	private Integer sum;

	@ApiModelProperty("通用费率")
	private BigDecimal feeRatio;

	@ApiModelProperty("二维码状态")
	private boolean qrCodeStatus;

	@ApiModelProperty("商品粉丝数量")
	private Integer frdcount;

	@ApiModelProperty("商圈名称")
	private String bcName;// 商圈名称

	@ApiModelProperty("折扣")
	private BigDecimal discount;// 折扣

	private String longitude;

	private String latitude;

	@ApiModelProperty("美女指数")
	private Integer girlIndex;

	private boolean memberFavorite;// 是否关注

	@ApiModelProperty("时间格式")
	private String formatDate;

	@ApiModelProperty("成交额")
	private BigDecimal sales;

	@ApiModelProperty("成交量")
	private Integer volume;

	@ApiModelProperty("照片")
	private String salesImg;
	
	@ApiModelProperty("优惠信息")
	private Integer preferential;

	@ApiModelProperty("应用场景")
	private Integer scenarioType;

	@ApiModelProperty("商铺位置")
	private String merchantPosition;

	public MerchantMerType getMerType() {
		return merType;
	}

	public Merchant merType(MerchantMerType merType) {
		this.merType = merType;
		return this;
	}

	public Integer getScenarioType() {
		return scenarioType;
	}

	public void setScenarioType(Integer scenarioType) {
		this.scenarioType = scenarioType;
	}

	public String getEncBankNo() {
		return encBankNo;
	}

	public void setEncBankNo(String encBankNo) {
		this.encBankNo = encBankNo;
	}

	public String getEncTrueName() {
		return encTrueName;
	}

	public void setEncTrueName(String encTrueName) {
		this.encTrueName = encTrueName;
	}

	public String getBankCode() {
		return bankCode;
	}

	public void setBankCode(String bankCode) {
		this.bankCode = bankCode;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public Integer getPreferential() {
		return preferential;
	}

	public void setPreferential(Integer preferential) {
		this.preferential = preferential;
	}

	public String getMerchantPosition() {
		return merchantPosition;
	}

	public void setMerchantPosition(String merchantPosition) {
		this.merchantPosition = merchantPosition;
	}

	public Integer getSum() {
		return sum;
	}

	public void setSum(Integer sum) {
		this.sum = sum;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

	public String getConfirmPassword() {
		return confirmPassword;
	}

	public void setConfirmPassword(String confirmPassword) {
		this.confirmPassword = confirmPassword;
	}

	public String getbSecondName() {
		return bSecondName;
	}

	public void setbSecondName(String bSecondName) {
		this.bSecondName = bSecondName;
	}

	public String getQrcodeUrl() {
		return qrcodeUrl;
	}

	public void setQrcodeUrl(String qrcodeUrl) {
		this.qrcodeUrl = qrcodeUrl;
	}

	public boolean getVoiceCof() {
		return voiceCof;
	}

	public void setVoiceCof(boolean voiceCof) {
		this.voiceCof = voiceCof;
	}
	
	public String getBtypeName() {
		return btypeName;
	}

	public void setBtypeName(String btypeName) {
		this.btypeName = btypeName;
	}

	public String getFormatDate() {
		return formatDate;
	}

	public void setFormatDate(String formatDate) {
		this.formatDate = formatDate;
	}

	public BigDecimal getSales() {
		return sales;
	}

	public void setSales(BigDecimal sales) {
		this.sales = sales;
	}

	public Integer getVolume() {
		return volume;
	}

	public void setVolume(Integer volume) {
		this.volume = volume;
	}

	public String getSalesImg() {
		return salesImg;
	}

	public void setSalesImg(String salesImg) {
		this.salesImg = salesImg;
	}

	/**
	 * 构造一个空商户信息模型对象
	 */
	public Merchant() {
		super();
	}

	/**
	 * 依据实体对象的信息构造一个商户信息模型对象
	 * 
	 * @param entity
	 *            实体对象
	 */
	public Merchant(MerchantEntity entity) {
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个商户信息模型对象
	 * 
	 * @param other
	 *            其它对象
	 */
	public Merchant(Merchant other) {
		super(other);
	}

	@Override
	public String getId() {
		return id;
	}

	/**
	 * 设置ID
	 * 
	 * @param id
	 *            ID
	 * @return 当前对象
	 */
	public Merchant id(String id) {
		this.id = id;
		return this;
	}

	@Override
	public String getMerchantIdOld() {
		return merchantIdOld;
	}

	/**
	 * 设置原1.4商铺id，迁移的数据必填，新增不必填
	 * 
	 * @param merchantIdOld
	 *            原1.4商铺id，迁移的数据必填，新增不必填
	 * @return 当前对象
	 */
	public Merchant merchantIdOld(String merchantIdOld) {
		this.merchantIdOld = merchantIdOld;
		return this;
	}

	@Override
	public String getBusdId() {
		return busdId;
	}

	/**
	 * 设置商圈ID
	 * 
	 * @param busdId
	 *            商圈ID
	 * @return 当前对象
	 */
	public Merchant busdId(String busdId) {
		this.busdId = busdId;
		return this;
	}

	@Override
	public String getMerchantName() {
		return merchantName;
	}

	/**
	 * 设置商户名称
	 * 
	 * @param merchantName
	 *            商户名称
	 * @return 当前对象
	 */
	public Merchant merchantName(String merchantName) {
		this.merchantName = merchantName;
		return this;
	}

	@Override
	public String getMerchantCode() {
		return merchantCode;
	}

	/**
	 * 设置商户铺位号
	 * 
	 * @param merchantCode
	 *            商户铺位号
	 * @return 当前对象
	 */
	public Merchant merchantCode(String merchantCode) {
		this.merchantCode = merchantCode;
		return this;
	}

	@Override
	public String getMerchantLogo() {
		return merchantLogo;
	}

	/**
	 * 设置商户logo
	 * 
	 * @param merchantLogo
	 *            商户logo
	 * @return 当前对象
	 */
	public Merchant merchantLogo(String merchantLogo) {
		this.merchantLogo = merchantLogo;
		return this;
	}

	@Override
	public String getMerchantFloorImg() {
		return merchantFloorImg;
	}

	/**
	 * 设置楼层图片
	 * 
	 * @param merchantFloorImg
	 *            楼层图片
	 * @return 当前对象
	 */
	public Merchant merchantFloorImg(String merchantFloorImg) {
		this.merchantFloorImg = merchantFloorImg;
		return this;
	}

	/**
	 * 获取
	 *
	 * @return floorName
	 */
	public String getFloorName() {
		return floorName;
	}

	/**
	 * 设置
	 *
	 * @param floorName
	 */
	public Merchant floorName(String floorName) {
		this.floorName = floorName;
		return this;
	}


	@Override
	public String getBuildingId() {
		return buildingId;
	}

	/**
	 * 设置楼栋id
	 * 
	 * @param buildingId
	 *            楼栋id
	 * @return 当前对象
	 */
	public Merchant buildingId(String buildingId) {
		this.buildingId = buildingId;
		return this;
	}

	@Override
	public MerchantMerchantType getMerchantType() {
		return merchantType;
	}

	/**
	 * 设置[枚举]商户类型：0-自营-PROPRIETARY、1-租赁-LEASE、2-联营-POOL
	 * 
	 * @param merchantType
	 *            [枚举]商户类型：0-自营-PROPRIETARY、1-租赁-LEASE、2-联营-POOL
	 * @return 当前对象
	 */
	public Merchant merchantType(MerchantMerchantType merchantType) {
		this.merchantType = merchantType;
		return this;
	}

	@Override
	public String getBtypeId() {
		return btypeId;
	}

	/**
	 * 设置一级业态
	 * 
	 * @param btypeId
	 *            一级业态
	 * @return 当前对象
	 */
	public Merchant btypeId(String btypeId) {
		this.btypeId = btypeId;
		return this;
	}

	@Override
	public String getBtypeSecondId() {
		return btypeSecondId;
	}

	/**
	 * 设置二级业态
	 * 
	 * @param btypeSecondId
	 *            二级业态
	 * @return 当前对象
	 */
	public Merchant btypeSecondId(String btypeSecondId) {
		this.btypeSecondId = btypeSecondId;
		return this;
	}

	@Override
	public Integer getMerchantSort() {
		return merchantSort;
	}

	/**
	 * 设置排序
	 * 
	 * @param merchantSort
	 *            排序
	 * @return 当前对象
	 */
	public Merchant merchantSort(Integer merchantSort) {
		this.merchantSort = merchantSort;
		return this;
	}

	@Override
	public String getContactName() {
		return contactName;
	}

	/**
	 * 设置联系人名称
	 * 
	 * @param contactName
	 *            联系人名称
	 * @return 当前对象
	 */
	public Merchant contactName(String contactName) {
		this.contactName = contactName;
		return this;
	}

	@Override
	public String getContactMobile() {
		return contactMobile;
	}

	/**
	 * 设置联系人手机号
	 * 
	 * @param contactMobile
	 *            联系人手机号
	 * @return 当前对象
	 */
	public Merchant contactMobile(String contactMobile) {
		this.contactMobile = contactMobile;
		return this;
	}

	@Override
	public String getContactAddress() {
		return contactAddress;
	}

	/**
	 * 设置联系地址
	 * 
	 * @param contactAddress
	 *            联系地址
	 * @return 当前对象
	 */
	public Merchant contactAddress(String contactAddress) {
		this.contactAddress = contactAddress;
		return this;
	}

	@Override
	public LocalTime getStartBusinessTime() {
		return startBusinessTime;
	}

	/**
	 * 设置开始营业时间
	 * 
	 * @param startBusinessTime
	 *            开始营业时间
	 * @return 当前对象
	 */
	public Merchant startBusinessTime(LocalTime startBusinessTime) {
		this.startBusinessTime = startBusinessTime;
		return this;
	}

	@Override
	public LocalTime getEndBusinessTime() {
		return endBusinessTime;
	}

	/**
	 * 设置结束营业时间
	 * 
	 * @param endBusinessTime
	 *            结束营业时间
	 * @return 当前对象
	 */
	public Merchant endBusinessTime(LocalTime endBusinessTime) {
		this.endBusinessTime = endBusinessTime;
		return this;
	}

	@Override
	public String getLevel() {
		return level;
	}

	/**
	 * 设置级次（对应字典表）
	 * 
	 * @param level
	 *            级次（对应字典表）
	 * @return 当前对象
	 */
	public Merchant level(String level) {
		this.level = level;
		return this;
	}

	@Override
	public String getPartnership() {
		return partnership;
	}

	/**
	 * 设置合作关系（对应字典表）
	 * 
	 * @param partnership
	 *            合作关系（对应字典表）
	 * @return 当前对象
	 */
	public Merchant partnership(String partnership) {
		this.partnership = partnership;
		return this;
	}

	@Override
	public BigDecimal getMerchantAcreage() {
		return merchantAcreage;
	}

	/**
	 * 设置商铺面积
	 * 
	 * @param merchantAcreage
	 *            商铺面积
	 * @return 当前对象
	 */
	public Merchant merchantAcreage(BigDecimal merchantAcreage) {
		this.merchantAcreage = merchantAcreage;
		return this;
	}

	@Override
	public String getRemarks() {
		return remarks;
	}

	/**
	 * 设置备注
	 * 
	 * @param remarks
	 *            备注
	 * @return 当前对象
	 */
	public Merchant remarks(String remarks) {
		this.remarks = remarks;
		return this;
	}

	@Override
	public BigDecimal getSelfFeeRatio() {
		return selfFeeRatio;
	}

	/**
	 * 设置自定义服务费率
	 * 
	 * @param selfFeeRatio
	 *            自定义服务费率
	 * @return 当前对象
	 */
	public Merchant selfFeeRatio(BigDecimal selfFeeRatio) {
		this.selfFeeRatio = selfFeeRatio;
		return this;
	}

	@Override
	public String getDescription() {
		return description;
	}

	/**
	 * 设置费率设置描述
	 * 
	 * @param description
	 *            费率设置描述
	 * @return 当前对象
	 */
	public Merchant description(String description) {
		this.description = description;
		return this;
	}

	@Override
	public String getCreatedBy() {
		return createdBy;
	}

	/**
	 * 设置创建人ID
	 * 
	 * @param createdBy
	 *            创建人ID
	 * @return 当前对象
	 */
	public Merchant createdBy(String createdBy) {
		this.createdBy = createdBy;
		return this;
	}

	@Override
	public LocalDateTime getCreatedTime() {
		return createdTime;
	}

	/**
	 * 设置创建时间
	 * 
	 * @param createdTime
	 *            创建时间
	 * @return 当前对象
	 */
	public Merchant createdTime(LocalDateTime createdTime) {
		this.createdTime = createdTime;
		return this;
	}

	@Override
	public String getModifiedBy() {
		return modifiedBy;
	}

	/**
	 * 设置更新人ID
	 * 
	 * @param modifiedBy
	 *            更新人ID
	 * @return 当前对象
	 */
	public Merchant modifiedBy(String modifiedBy) {
		this.modifiedBy = modifiedBy;
		return this;
	}

	@Override
	public LocalDateTime getModifiedTime() {
		return modifiedTime;
	}

	/**
	 * 设置更新时间
	 * 
	 * @param modifiedTime
	 *            更新时间
	 * @return 当前对象
	 */
	public Merchant modifiedTime(LocalDateTime modifiedTime) {
		this.modifiedTime = modifiedTime;
		return this;
	}

	@Override
	public Boolean getDel() {
		return del;
	}

	/**
	 * 设置逻辑删除，1表示已删除,0表示未删除
	 * 
	 * @param del
	 *            逻辑删除，1表示已删除,0表示未删除
	 * @return 当前对象
	 */
	public Merchant del(Boolean del) {
		this.del = del;
		return this;
	}

	@Override
	public String getDelBy() {
		return delBy;
	}

	/**
	 * 设置删除人ID
	 * 
	 * @param delBy
	 *            删除人ID
	 * @return 当前对象
	 */
	public Merchant delBy(String delBy) {
		this.delBy = delBy;
		return this;
	}

	@Override
	public LocalDateTime getDelTime() {
		return delTime;
	}

	/**
	 * 设置删除时间
	 * 
	 * @param delTime
	 *            删除时间
	 * @return 当前对象
	 */
	public Merchant delTime(LocalDateTime delTime) {
		this.delTime = delTime;
		return this;
	}

	public BigDecimal getDiscount() {
		return discount;
	}

	public void setDiscount(BigDecimal discount) {
		this.discount = discount;
	}

	public String getLongitude() {
		return longitude;
	}

	public void setLongitude(String longitude) {
		this.longitude = longitude;
	}

	public String getLatitude() {
		return latitude;
	}

	public void setLatitude(String latitude) {
		this.latitude = latitude;
	}

	public boolean getMemberFavorite() {
		return memberFavorite;
	}

	public void setMemberFavorite(boolean memberFavorite) {
		this.memberFavorite = memberFavorite;
	}

	public Integer getFrdcount() {
		return frdcount;
	}

	public void setFrdcount(Integer frdcount) {
		this.frdcount = frdcount;
	}

	public String getbName() {
		return bName;
	}

	public void setbName(String bName) {
		this.bName = bName;
	}

	public BigDecimal getFeeRatio() {
		return feeRatio;
	}

	public void setFeeRatio(BigDecimal feeRatio) {
		this.feeRatio = feeRatio;
	}

	public boolean getQrCodeStatus() {
		return qrCodeStatus;
	}

	public void setQrCodeStatus(boolean qrCodeStatus) {
		this.qrCodeStatus = qrCodeStatus;
	}

	public String getBcName() {
		return bcName;
	}

	public void setBcName(String bcName) {
		this.bcName = bcName;
	}

	public Integer getGirlIndex() {
		return girlIndex;
	}

	public void setGirlIndex(Integer girlIndex) {
		this.girlIndex = girlIndex;
	}

	@Override
	public MerchantStatus getStatus() {
		return status;
	}

	@Override
	public void setStatus(MerchantStatus status) {
		this.status = status;
	}

	public String getImages() {
		return images;
	}

	public void setImages(String images) {
		this.images = images;
	}
}
